package com.fh.service.building.contract;

import com.fh.dao.DaoSupport;
import com.fh.entity.Page;
import com.fh.util.PageData;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * Created by caozengling on 2017/9/22.
 */
@Service("contractService")
public class ContractService {
    @Resource(name = "daoSupport")
    private DaoSupport dao;

    /*
    * 新增
    */
    public void save(PageData pd) throws Exception {
        dao.save("ContractMapper.save", pd);
    }

    /*
    * 新增租户
    */
    public void saveTenant(PageData pd) throws Exception {
        dao.save("ContractMapper.saveTenant", pd);
    }

    /*
     * 租户入库
     */
    public void updateTenant(PageData pd) throws Exception {
        dao.update("ContractMapper.updateTenant", pd);
    }

    /*
    * 新增合同
    */
    public void saveContract(PageData pd) throws Exception {
        dao.save("ContractMapper.saveContract", pd);
    }

    /*
    * 新增押金信息
    */
    public void saveBonds(PageData pd) throws Exception {
        dao.save("ContractMapper.saveBonds", pd);
    }

    /*
    * 新增房间
    */
    public void saveRooms(PageData pd) throws Exception {
        dao.save("ContractMapper.saveRooms", pd);
    }

    /*
    * 新增联系人
    */
    public void saveContacts(PageData pd) throws Exception {
        dao.save("ContractMapper.saveContacts", pd);
    }

    /*
    * 新增折扣信息
    */
    public void saveDiscount(PageData pd) throws Exception {
        dao.save("ContractMapper.saveDiscount", pd);
    }

    /*
    * 新增物业合同
    */
    public void saveProperty(PageData pd) throws Exception {
        dao.save("ContractMapper.saveProperty", pd);
    }

    /*
    * 新增物业合同-初始读数
    */
    public void saveInitRead(PageData pd) throws Exception {
        dao.save("ContractMapper.saveInitRead", pd);
    }

    /*
     * 新增物业合同-初始读数-房间比例
     */
    public void saveBL(PageData pd) throws Exception {
        dao.update("ContractMapper.saveBL", pd);
    }

    /*
    * 新增物业合同-初始读数详情
    */
    public void saveInitReadDetail(PageData pd) throws Exception {
        dao.save("ContractMapper.saveInitReadDetail", pd);
    }

    /*
    * 新增物业合同-阶梯计价
    */
    public void saveTirered(PageData pd) throws Exception {
        dao.save("ContractMapper.saveTirered", pd);
    }

    /*
    * 新增物业合同-人为比例
    */
    public void saveAnthProportion(PageData pd) throws Exception {
        dao.save("ContractMapper.saveAnthProportion", pd);
    }

    /*
    * 新增账单
    */
    public void saveBill(PageData pd) throws Exception {
        dao.save("ContractMapper.saveBill", pd);
    }

    /*
     * 新增代收信息
     */
    public void saveCollection(PageData pd) throws Exception {
        dao.save("ContractMapper.saveCollection", pd);
    }

    /*
    * 通过合同ID查询合同信息
    */
    public PageData findById(PageData pd) throws Exception {
        return (PageData) dao.findForObject("ContractMapper.findById", pd);
    }

    /*
    * 退租修改合同
    */
    public void editContract(PageData pd) throws Exception {
        dao.update("ContractMapper.editContract", pd);
    }
    /*
     * 审批中的合同 取消操作
     */
    public void cancelShenpi(PageData pd) throws Exception {
        dao.update("ContractMapper.cancelShenpi", pd);
    }

    /*
    * 新增退租信息
    */
    public void saveThrowLease(PageData pd) throws Exception {
        dao.save("ContractMapper.saveThrowLease", pd);
    }


    /*
    * 修改
    */
    public void edit(PageData pd) throws Exception {
        dao.update("ContractMapper.edit", pd);
    }


    /*
    * 删除
    */
    public void delContract(PageData pd) throws Exception {
        dao.update("ContractMapper.delContract", pd);
    }
    /*
     * 删除其他关联合同信息 变更不通过
     */
    public void delOtherContract(PageData pd) throws Exception {
        dao.update("ContractMapper.delOtherContract", pd);
    }

    /*
    *json列表
	*/
    public List<PageData> list(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.list", page);
    }

    /*
    * 进行中的合同
	*/
    public List<PageData> listcontracting(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPageAll", page);
    }

    /*
	* 已完结的合同
	*/
    public List<PageData> listcontractywj(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPageywj", page);
    }
    /*
     * 待完结的合同
     */
    public List<PageData> listcontractdwj(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagedwj", page);
    }

    /*
	* 审批中的合同
	*/
    public List<PageData> contractshenpizhong(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPageshenpizhong", page);
    }
    /*
   * 暂存中的合同
   */
    public List<PageData> contractzancun(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagezancun", page);
    }
    /*
     * 将到期的合同
     */
    public List<PageData> contractjdq(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagejdq", page);
    }

    /*
	* 待审核的合同
	*/
    public List<PageData> listcontractingShenHe(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPageShenHe", page);
    }
    /*
	* 待审核的合同 消息
	*/
    public List<PageData> listcontractingShenHeXX(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.ShenHeXX", pd);
    }

    /*
   * 已审核的合同
   */
    public List<PageData> listcontractingYiShenHe(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPageYiShenHe", page);
    }

    /*
	*json列表
	*/
    public List<PageData> listAll(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.listAll", pd);
    }
    /*
	* 历史合同
	*/
    public List<PageData> HistoryContract(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.HistoryContract", pd);
    }


    /*
    * 通过buildingId获取数据
    */
    public List<PageData> findByBuildingId(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findByBuildingId", pd);
    }
    /*
	* 还有30天到期的合同 定时提醒业务
	*/
    public Object findContractEND()throws Exception{
        return dao.findForList("ContractMapper.findContractEND", "");
    }

    /*****************审批app**********************/
    /*
    * 列表
    */
    public List<PageData> findContractForCheck(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagefindContractForCheck", page);
    }
    /*
     * 通过合同ID查询合同信息app
     */
    public PageData findByIdApp(PageData pd) throws Exception {
        return (PageData) dao.findForObject("ContractMapper.findByIdApp", pd);
    }
    /*
    * 账单 列表
    */
    public List<PageData> findContractForCheckBill(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagefindContractForCheckBill", page);
    }
    /*
    * 单个合同
    */
    public PageData findContractByContractId(PageData pd) throws Exception {
        return (PageData) dao.findForObject("ContractMapper.findContractByContractId", pd);
    }


    /*
   * 列表
   */
    public List<PageData> findRoomByContractId(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findRoomByContractId", pd);
    }

    /*
   * 列表
   */
    public List<PageData> findContactByContractId(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findContactByContractId", pd);
    }

    /*
   * 列表
   */
    public List<PageData> findBondByContractId(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findBondByContractId", pd);
    }

    /*
   * 列表
   */
    public List<PageData> findDiscountByContractId(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findDiscountByContractId", pd);
    }

    /*
   * 列表
   */
    public List<PageData> findBillByContractId(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findBillByContractId", pd);
    }

    /*
   * 列表
   */
    public List<PageData> findPropertyBillByContractId(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findPropertyBillByContractId", pd);
    }

    /*
   * 列表
   */
    public List<PageData> findPropertyByContractId(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findPropertyByContractId", pd);
    }

    /*
   * 列表
   */
    public List<PageData> findThrowLease(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findThrowLease", pd);
    }

    /*
   * 列表
   */
    public List<PageData> findThrowLeaseReasonByIDs(String[] ArrayDATA_IDS) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findThrowLeaseReasonByIDs", ArrayDATA_IDS);
    }

    /*
   * 列表
   */
    public List<PageData> findInitRead(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findInitRead", pd);
    }

    /*
   * 列表
   */
    public List<PageData> findBL(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.findBL", pd);
    }

    /*
   * 代收
   */
    public PageData findCollectionByContractId(PageData pd) throws Exception {
        return (PageData) dao.findForObject("ContractMapper.findCollectionByContractId", pd);
    }

    /*
   * hetong审核
   */
    public void check(PageData pd) throws Exception {
        dao.update("ContractMapper.check", pd);
    }
    /*
     * 新增合同审核 业务记录表
     */
    public void savetbcheck(PageData pd) throws Exception {
        dao.save("ContractMapper.savetbcheck", pd);
    }

    /*
   * hetong 审核通过后 批量修改 合同下的账单
   */
    public void checkbill(PageData pd) throws Exception {
        dao.update("ContractMapper.checkbill", pd);
    }
    /*
   * hetong 作废  批量 删除 修改 合同下的账单
   */
    public void DELbill(List<PageData> pd) throws Exception {
        dao.update("ContractMapper.DELbill", pd);
    }
    /*
   * hetong 变更通过后 合同下的账单
   */
    public void ChangeOfContractPassed(PageData pd) throws Exception {
        dao.update("ContractMapper.ChangeOfContractPassed", pd);
    }
    /*
     * hetong 变更通过后 删除老合同需要作废的账单
     */
    public void ObsoleteBills(PageData pd) throws Exception {
        dao.update("ContractMapper.ObsoleteBills", pd);
    }
    /*
     * hetong 作废  修改合同为已完结
     */
    public void InvalidContract(PageData pd) throws Exception {
        dao.update("ContractMapper.InvalidContract", pd);
    }
    /*
   * hetong 审核驳回后 批量修改 合同下的账单
   */
    public void checkbillbohui(PageData pd) throws Exception {
        dao.update("ContractMapper.checkbillbohui", pd);
    }
    /*
   * hetong 退租 审核通过后 修改 合同下的账单
   */
    public void checkbilltz(PageData pd) throws Exception {
        dao.update("ContractMapper.checkbilltz", pd);
    }
    /*
   * hetong 审核通过后 删除  合同下的账单
   */
    public void checkbillDEL(PageData pd) throws Exception {
        dao.update("ContractMapper.checkbillDEL", pd);
    }
   /*
   *  app 消息中心 列表 账单
   *//*
    public List<PageData> findmessagelist(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagefindmessage", pd);
    }*/

    public List<PageData> findmessagelist(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagefindmessage", page);
    }

   /*
  *  app 消息中心 列表 合同
  */
    /*public List<PageData> findmessagelistcontract(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagefindmessagecontract", pd);
    }*/
    public List<PageData> findmessagelistcontract(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagefindmessagecontract", page);
    }

   /*
  *  app 消息中心 列表 已支付的账单
  */
    /*public List<PageData> findmessagelistPay(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagefindmessagePay", pd);
    }*/

    public List<PageData> findmessagelistPay(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagefindmessagePay", page);
    }

    /*
    * 消息中心列表阅读后 修改合同消息状态
    */
    public void editmessagelistCONTRACT(PageData pd) throws Exception {
        dao.update("ContractMapper.editmessagelistCONTRACT", pd);
    }
    /*
    * 消息中心列表阅读后 修改账单消息状态
    */
    public void editmessagelistBILL(PageData pd) throws Exception {
        dao.update("ContractMapper.editmessagelistBILL", pd);
    }

    /*
  *  app 消息中心 列表
  */
    public List<PageData> contract(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.datalistPagecontract",page);
    }
 /*   *//*
   *租客合同app
   *//*
    public List<PageData> contract(Page page) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.contract", page);
    }*/


    /*
	*通过查询 获取全部用户CID
	*/
    /*public List<PageData> findlistCID(PageData pd)throws Exception{
        return (List<PageData>)dao.findForList("UserXMapper.findlistCID", pd);

    }*/
    public List<PageData> findlistCID(PageData pd)throws Exception{
        return (List<PageData>)dao.findForList("UserXMapper.findlistCIDtoRole", pd);

    }

    public List<PageData> findByUserToListCT(PageData pd) throws Exception{
        return (List<PageData>) dao.findForList("ContractMapper.findByUserToListCT", pd);
    }

    public List<PageData> findByUserToListBill(PageData pd)  throws Exception{
        return (List<PageData>) dao.findForList("ContractMapper.findByUserToListBill", pd);
    }

    public List<PageData> findConAndPayAndMessage(Page page) throws Exception{
        return (List<PageData>) dao.findForList("ContractMapper.datalistPageConAndPayAndMessage",page);
    }

    public List<PageData> datalistPageConAndPayAndMessageForCheck(Page page) throws Exception{
        return (List<PageData>) dao.findForList("ContractMapper.datalistPageConAndPayAndMessageForCheck",page);
    }

    //短信通知
    /*
     * 待审核的合同
     */
    public List<PageData> listcontractingShenHeMSG(PageData pd) throws Exception {
        return (List<PageData>) dao.findForList("ContractMapper.listcontractingShenHeMSG",pd);
    }

}
